JSON ডেটা Database এ সংরক্ষণ এবং রিট্রাইভ করা

Java Technologies - জেডিবিসি (JDBC) - JDBC এবং XML/JSON Integration
169

JDBC (Java Database Connectivity) ব্যবহার করে আপনি ডেটাবেসে JSON ডেটা সংরক্ষণ এবং রিট্রাইভ করতে পারেন। JSON (JavaScript Object Notation) হল একটি জনপ্রিয় ডেটা ফরম্যাট যা সাধারণত ডেটা এক্সচেঞ্জের জন্য ব্যবহৃত হয়। JDBC-এর মাধ্যমে আপনি JSON ডেটা ডেটাবেসের TEXT বা BLOB ফিল্ডে সংরক্ষণ করতে পারেন এবং সহজেই রিট্রাইভ (retrieve) করতে পারেন।

এখানে, আমরা দেখব কিভাবে JDBC ব্যবহার করে JSON ডেটা ডেটাবেসে সংরক্ষণ এবং রিট্রাইভ করা যায়।


1. JSON ডেটা সংরক্ষণ করা

ডেটাবেসে JSON ডেটা সংরক্ষণের জন্য, আপনি MySQL বা অন্য কোনো ডেটাবেসের TEXT বা BLOB ডেটা টাইপ ব্যবহার করতে পারেন।

JSON ডেটা সংরক্ষণের উদাহরণ:

ধরা যাক, আমাদের কাছে একটি টেবিল রয়েছে, যেখানে JSON ডেটা সংরক্ষণ করতে হবে:

CREATE TABLE users (
    id INT PRIMARY KEY,
    user_info JSON
);

এই টেবিলের মধ্যে user_info একটি JSON কলাম হিসেবে থাকবে, যেখানে JSON ডেটা সংরক্ষিত হবে।

JDBC কোড দিয়ে JSON ডেটা ইনসার্ট করা

import java.sql.*;
import org.json.JSONObject;

public class JSONInsertExample {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement statement = null;

        try {
            // ১. ডেটাবেসে সংযোগ স্থাপন
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");

            // ২. JSON ডেটা তৈরি করা
            JSONObject userInfo = new JSONObject();
            userInfo.put("name", "John Doe");
            userInfo.put("email", "john@example.com");
            userInfo.put("age", 30);

            // ৩. SQL Query প্রস্তুত করা (PreparedStatement ব্যবহার)
            String query = "INSERT INTO users (id, user_info) VALUES (?, ?)";
            statement = connection.prepareStatement(query);

            // ৪. প্যারামিটার সেট করা
            statement.setInt(1, 1);  // id
            statement.setString(2, userInfo.toString());  // JSON ডেটা টেক্সট ফরম্যাটে

            // ৫. ডেটাবেসে ইনসার্ট করা
            int rowsAffected = statement.executeUpdate();
            System.out.println("Rows affected: " + rowsAffected);

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (statement != null) statement.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা:

  1. JSON ডেটা তৈরি: JSONObject ক্লাস ব্যবহার করে JSON ডেটা তৈরি করা হয়।
  2. PreparedStatement: PreparedStatement ব্যবহার করা হয়েছে যাতে SQL ইনজেকশন প্রতিরোধ করা যায় এবং JSON ডেটা ইনপুট হিসেবে পাঠানো যায়।
  3. setString(): userInfo.toString() মেথড ব্যবহার করে JSON অবজেক্টটি স্ট্রিং ফরম্যাটে ডেটাবেসে সংরক্ষণ করা হয়।
  4. executeUpdate(): SQL INSERT কোয়েরি চালিয়ে JSON ডেটা ডেটাবেসে ইনসার্ট করা হয়।

2. JSON ডেটা রিট্রাইভ করা

ডেটাবেসে সংরক্ষিত JSON ডেটা রিট্রাইভ করার জন্য, আমরা SELECT কিউরি ব্যবহার করতে পারি। JSON ডেটা পুনরুদ্ধার করার পর, আপনি তা String হিসেবে পাবেন, এবং প্রয়োজন হলে JSONObject বা JSONArray এ রূপান্তর করতে পারেন।

JDBC কোড দিয়ে JSON ডেটা রিট্রাইভ করা

import java.sql.*;
import org.json.JSONObject;

public class JSONRetrieveExample {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement statement = null;
        ResultSet resultSet = null;

        try {
            // ১. ডেটাবেসে সংযোগ স্থাপন
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");

            // ২. SQL Query তৈরি করা
            String query = "SELECT user_info FROM users WHERE id = ?";
            statement = connection.prepareStatement(query);

            // ৩. প্যারামিটার সেট করা
            statement.setInt(1, 1);  // id

            // ৪. কোয়েরি চালানো
            resultSet = statement.executeQuery();

            // ৫. রেজাল্ট সেট প্রক্রিয়া করা
            if (resultSet.next()) {
                String userInfoJson = resultSet.getString("user_info");
                JSONObject userInfo = new JSONObject(userInfoJson);  // JSON string থেকে JSONObject এ রূপান্তর

                // ৬. JSON ডেটা প্রিন্ট করা
                System.out.println("Name: " + userInfo.getString("name"));
                System.out.println("Email: " + userInfo.getString("email"));
                System.out.println("Age: " + userInfo.getInt("age"));
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (resultSet != null) resultSet.close();
                if (statement != null) statement.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা:

  1. SQL SELECT Query: SELECT user_info FROM users WHERE id = ? কিউরি ব্যবহার করে JSON ডেটা রিট্রাইভ করা হয়েছে।
  2. getString(): resultSet.getString("user_info") মেথড ব্যবহার করে JSON ডেটা স্ট্রিং হিসেবে পাওয়া যায়।
  3. JSONObject: new JSONObject(userInfoJson) দিয়ে স্ট্রিং ডেটাকে JSON অবজেক্টে রূপান্তর করা হয়েছে, যাতে তার প্যারামিটারগুলিকে অ্যাক্সেস করা যায়।
  4. JSON Data Access: userInfo.getString("name"), userInfo.getString("email"), এবং userInfo.getInt("age") মেথড ব্যবহার করে JSON ডেটার বিভিন্ন ফিল্ড অ্যাক্সেস করা হয়েছে।

3. JSON ডেটা MySQL 5.7+ তে সংরক্ষণ এবং রিট্রাইভ করা

MySQL 5.7 এবং এর পরবর্তী সংস্করণগুলো JSON ডেটা টাইপ সরাসরি সাপোর্ট করে। এতে, আপনি JSON ডেটা স্টোর এবং রিট্রাইভ করতে JSON ডেটা টাইপ ব্যবহার করতে পারবেন।

উদাহরণ: MySQL JSON Column ব্যবহার করা

CREATE TABLE users (
    id INT PRIMARY KEY,
    user_info JSON
);

JDBC কোড দিয়ে JSON ডেটা ডেটাবেসে ইনসার্ট এবং রিট্রাইভ করা:

import java.sql.*;
import org.json.JSONObject;

public class MySQLJSONExample {
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement statement = null;

        try {
            // ডেটাবেসে সংযোগ স্থাপন
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/your_database", "username", "password");

            // JSON ডেটা তৈরি করা
            JSONObject userInfo = new JSONObject();
            userInfo.put("name", "John Doe");
            userInfo.put("email", "john@example.com");
            userInfo.put("age", 30);

            // SQL Query
            String query = "INSERT INTO users (id, user_info) VALUES (?, ?)";
            statement = connection.prepareStatement(query);
            statement.setInt(1, 1);  // id
            statement.setString(2, userInfo.toString());  // JSON string

            int rowsAffected = statement.executeUpdate();
            System.out.println("Rows affected: " + rowsAffected);

            // ডেটাবেস থেকে JSON ডেটা রিট্রাইভ করা
            String selectQuery = "SELECT user_info FROM users WHERE id = ?";
            statement = connection.prepareStatement(selectQuery);
            statement.setInt(1, 1);
            ResultSet resultSet = statement.executeQuery();

            if (resultSet.next()) {
                String userInfoJson = resultSet.getString("user_info");
                JSONObject userInfoFromDB = new JSONObject(userInfoJson);
                System.out.println("Name: " + userInfoFromDB.getString("name"));
                System.out.println("Email: " + userInfoFromDB.getString("email"));
                System.out.println("Age: " + userInfoFromDB.getInt("age"));
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (statement != null) statement.close();
                if (connection != null) connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা:

  1. JSON Column: MySQL 5.7+ এ JSON ডেটা টাইপ ব্যবহার করে JSON ডেটা সংরক্ষণ এবং রিট্রাইভ করা হচ্ছে।
  2. setString(): JSON অবজেক্টকে স্ট্রিং আকারে ডেটাবেসে ইনসার্ট করা হচ্ছে।
  3. getString(): JSON ডেটাকে স্ট্রিং হিসেবে রিট্রাইভ করা হচ্ছে এবং পরে JSON অবজেক্টে রূপান্তর করা হচ্ছে।

সারাংশ

JDBC ব্যবহার করে JSON ডেটা ডেটাবেসে সংরক্ষণ এবং রিট্রাইভ করা খুবই সহজ। আপনি JSON ডেটাকে সাধারণ TEXT বা JSON টাইপ কলামে সংরক্ষণ করতে পারেন এবং পরে তা রিট্রাইভ করতে পারেন।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...